home *** CD-ROM | disk | FTP | other *** search
- # Copyright (C) 2007 AG Projects. See LICENSE for details.
- #
-
- """GNUTLS constants"""
-
- __all__ = [
- ## GNUTLS session protocols
- 'PROTO_TLS1_1', 'PROTO_TLS1_0', 'PROTO_SSL3',
-
- ## Key exchange algorithms
- 'KX_RSA', 'KX_DHE_DSS', 'KX_DHE_RSA', 'KX_RSA_EXPORT', 'KX_ANON_DH',
-
- ## Ciphers
- 'CIPHER_AES_128_CBC', 'CIPHER_3DES_CBC', 'CIPHER_ARCFOUR_128', 'CIPHER_AES_256_CBC', 'CIPHER_DES_CBC',
-
- ## MAC algorithms
- 'MAC_SHA1', 'MAC_MD5', 'MAC_RMD160',
-
- ## Compressions
- 'COMP_DEFLATE', 'COMP_LZO', 'COMP_NULL',
-
- ## Credential types
- 'CRED_CERTIFICATE', 'CRED_ANON',
-
- ## X509 certificate/private key formats
- 'X509_FMT_DER', 'X509_FMT_PEM',
-
- ## Miscellaneous
- 'CERT_REQUEST', 'CERT_REQUIRE', 'SHUT_RDWR', 'SHUT_WR'
- ]
-
- __name_map__ = {
- 'PROTO_TLS1_1': 'TLS1_1', 'PROTO_TLS1_0': 'TLS1_0', 'PROTO_SSL3': 'SSL3',
- 'CRED_CERTIFICATE': 'CRD_CERTIFICATE', 'CRED_ANON': 'CRD_ANON'
- }
-
-
- from gnutls.library import constants
-
- class GNUTLSConstant(int):
- def __new__(cls, name):
- gnutls_name = 'GNUTLS_' + __name_map__.get(name, name)
- instance = int.__new__(cls, getattr(constants, gnutls_name))
- instance.name = name
- return instance
- def __repr__(self):
- return self.name
-
- ## Generate all exported constants
- code = '\n'.join(["%s = GNUTLSConstant('%s')" % (name, name) for name in __all__])
- exec code in locals(), globals()
- del code, name
-
- del constants
-